package com.xzzz.irda.guardcat.core.pojo;

import com.xzzz.common.base.enums.FrameworkEnum;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 心跳对象
 *
 * @author xzzz
 */
@Data
public final class Heartbeat implements Serializable {

    /**
     * 机器ID, 通常是个UUID
     */
    private String machineId;

    /**
     * 本地机器名称
     */
    private String hostName;

    /**
     * IP
     */
    private String ip;

    /**
     * 端口, 通常为 Http 端口
     */
    private Integer port;

    /**
     *
     */
    private String servletContextPath;

    /**
     * JVM 名称
     */
    private String processName;

    /**
     * JVM 进程ID
     */
    private Integer processId;

    /**
     * 启动时间
     */
    private String startTime;

    /**
     * 在线时长
     */
    private Long uptime;

    /**
     * 应用名称, application.name
     */
    private String appName;

    /**
     * 应用类型, 目前只有 SpringBoot
     */
    private String appType = "springboot";

    /**
     * 应用版本
     */
    private String appVersion;

    /**
     * 启动环境
     */
    private String profilesActive;

    /**
     * 使用的框架
     */
    private List<FrameworkEnum> frameworks;

    /**
     * 心跳时间
     */
    private Long timestamp;
}
